The disclosed subject matter relates generally to optimizing a cache mechanism in a computing environment and, more particularly but not exclusively, to a method or system for profiling and estimating cache efficiency by collecting statistics corresponding to successful cache usage rates.
In computing systems, a cache mechanism may be utilized to improve data access speeds. This is accomplished by way of temporarily copying certain target data stored in a primary data storage area (i.e., auxiliary memory) to a secondary data storage area (i.e., cache memory). Cache memory can be accessed faster than the auxiliary memory, thereby supporting faster data processing speeds.
Due to cost issues, size of cache memory is generally substantially smaller than the auxiliary memory. Therefore, when the cache gets full, a caching algorithm or policy is used to evict older cached data in order to provide room for new data that needs to be copied to the cache. Caching algorithms are utilized to determine a replacement policy that would optimize the use of the caching mechanism with an eye toward increasing the underlying system's performance.
In a cache environment in which multiple tenants (e.g., services, applications, processors or machines) compete for cache space, it is important to implement a cache allocation or cache replacement policy that would allocate the available cache space to the more deserving tenants (e.g., tenants defined as having a higher priority over the others) while maintaining the overall optimization in the cache environment and without substantially or disruptively affecting the individual efficiency of the other tenants or the system as a whole.